package com.example.netty_pipline.pipeline;

/**
 * ChannelHandler接口 - 模仿Netty的ChannelHandler
 * 所有处理器的基类接口
 */
public interface ChannelHandler {
    
    /**
     * 处理器被添加到pipeline时调用
     */
    default void handlerAdded(ChannelHandlerContext ctx) throws Exception {}
    
    /**
     * 处理器从pipeline中移除时调用
     */
    default void handlerRemoved(ChannelHandlerContext ctx) throws Exception {}
    
    /**
     * 异常处理
     */
    default void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        ctx.fireExceptionCaught(cause);
    }
}